home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / drivers / xgav210.zip / XGAPCDOS / IBMAFI.H < prev    next >
Text File  |  1993-07-21  |  15KB  |  345 lines

  1. /* (C) Copyright IBM Corporation 1986,1987,1988,1989,1990 ***************/
  2. /*                                                                      */
  3. /* Definitions & declarations relevant to the Adapter Interface         */
  4. /* For use in conjunction with the Adapter linked List                  */
  5. /*                                                                      */
  6. /* This file also includes the compiler independent file afidata.h      */
  7. /*                                                                      */
  8. /************************************************************************/
  9.  
  10. #ifndef NULL
  11. #define NULL 0x0L
  12. #endif
  13.  
  14. #ifndef byte
  15. #define byte unsigned char
  16. #endif
  17.  
  18. #ifndef word
  19. #define word unsigned int
  20. #endif
  21.  
  22. #ifndef longword
  23. #define longword unsigned long
  24. #endif
  25.  
  26. typedef struct
  27. {
  28.    int x_coord;
  29.    int y_coord;
  30. } coord_pr;
  31.  
  32. typedef struct
  33. {
  34.    char rx_coord;
  35.    char ry_coord;
  36. } rcoord_pr;
  37.  
  38. typedef struct
  39. {
  40.    int x_coord;
  41.    int y_coord;
  42.    int pel_count;
  43. } pel_pr;
  44.  
  45. typedef struct
  46. {
  47.    int   x_start;
  48.    int   y_start;
  49.    int   x_end;
  50.    int   y_end;
  51. } dcoord;
  52.  
  53. typedef struct
  54. {
  55.    int   x_coord;
  56.    int   y_coord;
  57.    word  width;
  58.    word  height;
  59. } rect_def;
  60.  
  61. struct afi_entries
  62. {
  63.   void  ( far pascal * hline    )( char far * );
  64.   void  ( far pascal * hcline   )( char far * );
  65.   void  ( far pascal * hrline   )( char far * );
  66.   void  ( far pascal * hcrline  )( char far * );
  67.   void  ( far pascal * hscp     )( char far * );
  68.   void  ( far pascal * hbar     )( char far * );
  69.   void  ( far pascal * hear     )( char far * );
  70.   void  ( far pascal * hscol    )( char far * );
  71.   void  ( far pascal * hopen    )( char far * );
  72.   void  ( far pascal * hsmx     )( char far * );
  73.   void  ( far pascal * hsbcol   )( char far * );
  74.   void  ( far pascal * hslt     )( char far * );
  75.   void  ( far pascal * hslw     )( char far * );
  76.   void  ( far pascal * hegs     )( char far * );
  77.   void  ( far pascal * hsgq     )( char far * );
  78.   void  ( far pascal * hscmp    )( char far * );
  79.   void  ( far pascal * hint     )( char far * );
  80.   void  ( far pascal * hspatto  )( char far * );
  81.   void  ( far pascal * hspatt   )( char far * );
  82.   void  ( far pascal * hldpal   )( char far * );
  83.   void  ( far pascal * hshs     )( char far * );
  84.   void  ( far pascal * hbbw     )( char far * );
  85.   void  ( far pascal * hcbbw    )( char far * );
  86.   void  ( far pascal * hbbr     )( char far * );
  87.   void  ( far pascal * hbbchn   )( char far * );
  88.   void  ( far pascal * hbbc     )( char far * );
  89.   void  ( far pascal * hscoord  )( char far * );
  90.   void  ( far pascal * hqcoord  )( char far * );
  91.   void  ( far pascal * hsmode   )( char far * );
  92.   void  ( far pascal * hqmode   )( char far * );
  93.   void  ( far pascal * hqmodes  )( char far * );
  94.   void  ( far pascal * hqdps    )( char far * );
  95.   void  ( far pascal * hrect    )( char far * );
  96.   void  ( far pascal * hsbp     )( char far * );
  97.   void  ( far pascal * hclose   )( char far * );
  98.   void  ( far pascal * hesc     )( char far * );
  99.   void  ( far pascal * hxlate   )( char far * );
  100.   void  ( far pascal * hscs     )( char far * );
  101.   void  ( far pascal * hchst    )( char far * );
  102.   void  ( far pascal * hcchst   )( char far * );
  103.   void  ( far pascal * ablockmfi)( char far * );
  104.   void  ( far pascal * ablockcga)( char far * );
  105.   void  ( far pascal * aerase   )( char far * );
  106.   void  ( far pascal * ascroll  )( char far * );
  107.   void  ( far pascal * acursor  )( char far * );
  108.   void  ( far pascal * ascur    )( char far * );
  109.   void  ( far pascal * asfont   )( char far * );
  110.   void  ( far pascal * axlate   )( char far * );
  111.   void  ( far pascal * hinit    )( char far * );
  112.   void  ( far pascal * hsync    )( char far * );
  113.   void  ( far pascal * hmrk     )( char far * );
  114.   void  ( far pascal * hcmrk    )( char far * );
  115.   void  ( far pascal * hsmark   )( char far * );
  116.   void  ( far pascal * hslpc    )( char far * );
  117.   void  ( far pascal * hrlpc    )( char far * );
  118.   void  ( far pascal * hqcp     )( char far * );
  119.   void  ( far pascal * hqdfpal  )( char far * );
  120.   void  ( far pascal * hspal    )( char far * );
  121.   void  ( far pascal * hrpal    )( char far * );
  122.   void  ( far pascal * hsafp    )( char far * );
  123.   void  ( far pascal * ascell   )( char far * );
  124.   void  ( far pascal * asgo     )( char far * );
  125.   void  ( far pascal * hdline   )( char far * );
  126.   void  ( far pascal * hreserve1)( char far * );     /* reserved call */
  127.   void  ( far pascal * hpel     )( char far * );
  128.   void  ( far pascal * hrpel    )( char far * );
  129.   void  ( far pascal * hpstep   )( char far * );
  130.   void  ( far pascal * hcpstep  )( char far * );
  131.   void  ( far pascal * hrstep   )( char far * );
  132.   void  ( far pascal * hsbmap   )( char far * );
  133.   void  ( far pascal * hqbmap   )( char far * );
  134.   void  ( far pascal * hbmc     )( char far * );
  135.   void  ( far pascal * hsdw     )( char far * );
  136.   void  ( far pascal * hsprite  )( char far * );
  137.   void  ( far pascal * hssprite )( char far * );
  138.   void  ( far pascal * hrwvec   )( char far * );
  139.   void  ( far pascal * hreserve2)( char far * );     /* reserved call */
  140.   void  ( far pascal * hreserve3)( char far * );     /* reserved call */
  141.   void  ( far pascal * hsfpal   )( char far * );
  142.   void  ( far pascal * hrfpal   )( char far * );
  143.   void  ( far pascal * hqdevice )( char far * );
  144.   void  ( far pascal * hreserve6)( char far * );     /* reserved call */
  145.   void  ( far pascal * hreserve7)( char far * );     /* reserved call */
  146.   void  ( far pascal * hreserve8)( char far * );     /* reserved call */
  147. };
  148.  
  149.  
  150.  
  151.  
  152.  
  153. /* Structure definition for an AI linked list entry */
  154.  
  155. struct afi_list_entry
  156. {
  157.     struct  afi_entries    far * afi_tbl_ptr ;
  158.     byte                         adapter_type ;
  159.     byte                         instance ;
  160.     struct  afi_list_entry far * link_ptr ;
  161. };
  162.  
  163.  
  164. /* External declaration of adapter linked list address returning function */
  165.  
  166. extern struct afi_list_entry far * ( far getafil( void ) );
  167.  
  168. #define MHLINE(W,X)     (*W->hline)((char far *) X)
  169. #define MHCLINE(W,X)    (*W->hcline)((char far *) X)
  170. #define MHRLINE(W,X)    (*W->hrline)((char far *) X)
  171. #define MHCRLINE(W,X)   (*W->hcrline)((char far *) X)
  172. #define MHSCP(W,X)      (*W->hscp)((char far *) X)
  173. #define MHBAR(W)        (*W->hbar)((char far *) 0L)
  174. #define MHEAR(W,X)      (*W->hear)((char far *) X)
  175. #define MHSCOL(W,X)     (*W->hscol)((char far *) X)
  176. #define MHOPEN(W,X)     (*W->hopen)((char far *) X)
  177. #define MHSMX(W,X)      (*W->hsmx)((char far *) X)
  178. #define MHSBCOL(W,X)    (*W->hsbcol)((char far *) X)
  179. #define MHSLT(W,X)      (*W->hslt)((char far *) X)
  180. #define MHSLW(W,X)      (*W->hslw)((char far *) X)
  181. #define MHEGS(W)        (*W->hegs)((char far *) 0L)
  182. #define MHSGQ(W,X)      (*W->hsgq)((char far *) X)
  183. #define MHSCMP(W,X)     (*W->hscmp)((char far *) X)
  184. #define MHINT(W,X)      (*W->hint)((char far *) X)
  185. #define MHSPATTO(W,X)   (*W->hspatto)((char far *) X)
  186. #define MHSPATT(W,X)    (*W->hspatt)((char far *) X)
  187. #define MHLDPAL(W,X)    (*W->hldpal)((char far *) X)
  188. #define MHSHS(W,X)      (*W->hshs)((char far *) X)
  189. #define MHBBW(W,X)      (*W->hbbw)((char far *) X)
  190. #define MHCBBW(W,X)     (*W->hcbbw)((char far *) X)
  191. #define MHBBR(W,X)      (*W->hbbr)((char far *) X)
  192. #define MHBBCHN(W,X)    (*W->hbbchn)((char far *) X)
  193. #define MHBBC(W,X)      (*W->hbbc)((char far *) X)
  194. #define MHSCOORD(W,X)   (*W->hscoord)((char far *) X)
  195. #define MHQCOORD(W,X)   (*W->hqcoord)((char far *) X)
  196. #define MHSMODE(W,X)    (*W->hsmode )((char far *) X)
  197. #define MHQMODE(W,X)    (*W->hqmode )((char far *) X)
  198. #define MHQMODES(W,X)   (*W->hqmodes)((char far *) X)
  199. #define MHQDPS(W,X)     (*W->hqdps  )((char far *) X)
  200. #define MHRECT(W,X)     (*W->hrect  )((char far *) X)
  201. #define MHSBP(W,X)      (*W->hsbp   )((char far *) X)
  202. #define MHCLOSE(W,X)    (*W->hclose )((char far *) X)
  203. #define MHESC(W)        (*W->hesc   )((char far *) 0L)
  204. #define MHXLATE(W,X)    (*W->hxlate )((char far *) X)
  205. #define MHSCS(W,X)      (*W->hscs)((char far *) X)
  206. #define MHCHST(W,X)     (*W->hchst)((char far *) X)
  207. #define MHCCHST(W,X)    (*W->hcchst)((char far *) X)
  208. #define MABLKMFI(W,X)   (*W->ablockmfi)((char far *) X)
  209. #define MABLKCGA(W,X)   (*W->ablockcga)((char far *) X)
  210. #define MAERASE(W,X)    (*W->aerase )((char far *) X)
  211. #define MASCROLL(W,X)   (*W->ascroll)((char far *) X)
  212. #define MACURSOR(W,X)   (*W->acursor)((char far *) X)
  213. #define MASCUR(W,X)     (*W->ascur  )((char far *) X)
  214. #define MASFONT(W,X)    (*W->asfont )((char far *) X)
  215. #define MAXLATE(W,X)    (*W->axlate )((char far *) X)
  216. #define MHINIT(W,X)     (*W->hinit)((char far *) X)
  217. #define MHSYNC(W,X)     (*W->hsync)((char far *) X)
  218. #define MHMRK(W,X)      (*W->hmrk   )((char far *) X)
  219. #define MHCMRK(W,X)     (*W->hcmrk  )((char far *) X)
  220. #define MHSMARK(W,X)    (*W->hsmark )((char far *) X)
  221. #define MHSLPC(W,X)     (*W->hslpc  )((char far *) X)
  222. #define MHRLPC(W,X)     (*W->hrlpc  )((char far *) X)
  223. #define MHQCP(W,X)      (*W->hqcp )((char far *) X)
  224. #define MHQDFPAL(W,X)   (*W->hqdfpal )((char far *) X)
  225. #define MHSPAL(W,X)     (*W->hspal )((char far *) X)
  226. #define MHRPAL(W,X)     (*W->hrpal )((char far *) X)
  227. #define MHSAFP(W,X)     (*W->hsafp )((char far *) X)
  228. #define MASCELL(W,X)    (*W->ascell )((char far *) X)
  229. #define MASGO(W,X)      (*W->asgo   )((char far *) X)
  230. #define MHDLINE(W,X)    (*W->hdline )((char far *) X)
  231.         /* blank entry */
  232. #define MHPEL(W,X)      (*W->hpel )((char far *) X)
  233. #define MHRPEL(W,X)     (*W->hrpel )((char far *) X)
  234. #define MHPSTEP(W,X)    (*W->hpstep )((char far *) X)
  235. #define MHCPSTEP(W,X)   (*W->hcpstep )((char far *) X)
  236. #define MHRSTEP(W,X)    (*W->hrstep )((char far *) X)
  237. #define MHSBMAP(W,X)    (*W->hsbmap )((char far *) X)
  238. #define MHQBMAP(W,X)    (*W->hqbmap )((char far *) X)
  239. #define MHBMC(W,X)      (*W->hbmc )((char far *) X)
  240. #define MHSDW(W,X)      (*W->hsdw )((char far *) X)
  241. #define MHSPRITE(W,X)   (*W->hsprite )((char far *) X)
  242. #define MHSSPRITE(W,X)  (*W->hssprite )((char far *) X)
  243. #define MHRWVEC(W,X)    (*W->hrwvec )((char far *) X)
  244.         /* blank entry */
  245.         /* blank entry */
  246. #define MHSFPAL(W,X)    (*W->hsfpal )((char far *) X)
  247. #define MHRFPAL(W,X)    (*W->hrfpal )((char far *) X)
  248. #define MHQDEVICE(W,X)  (*W->hqdevice )((char far *) X)
  249.         /* blank entry */
  250.         /* blank entry */
  251.         /* blank entry */
  252.  
  253.  
  254.  
  255. extern struct afi_entries far *afi_ptr,far *(far getafi(void));
  256.  
  257.  
  258.  
  259. #define HLINE(X)        (*afi_ptr->hline)((char far *) X)
  260. #define HCLINE(X)       (*afi_ptr->hcline)((char far *) X)
  261. #define HRLINE(X)       (*afi_ptr->hrline)((char far *) X)
  262. #define HCRLINE(X)      (*afi_ptr->hcrline)((char far *) X)
  263. #define HSCP(X)         (*afi_ptr->hscp)((char far *) X)
  264. #define HBAR()          (*afi_ptr->hbar)((char far *) 0L)
  265. #define HEAR(X)         (*afi_ptr->hear)((char far *) X)
  266. #define HSCOL(X)        (*afi_ptr->hscol)((char far *) X)
  267. #define HOPEN(X)        (*afi_ptr->hopen)((char far *) X)
  268. #define HSMX(X)         (*afi_ptr->hsmx)((char far *) X)
  269. #define HSBCOL(X)       (*afi_ptr->hsbcol)((char far *) X)
  270. #define HSLT(X)         (*afi_ptr->hslt)((char far *) X)
  271. #define HSLW(X)         (*afi_ptr->hslw)((char far *) X)
  272. #define HEGS()          (*afi_ptr->hegs)((char far *) 0L)
  273. #define HSGQ(X)         (*afi_ptr->hsgq)((char far *) X)
  274. #define HSCMP(X)        (*afi_ptr->hscmp)((char far *) X)
  275. #define HINT(X)         (*afi_ptr->hint)((char far *) X)
  276. #define HSPATTO(X)      (*afi_ptr->hspatto)((char far *) X)
  277. #define HSPATT(X)       (*afi_ptr->hspatt)((char far *) X)
  278. #define HLDPAL(X)       (*afi_ptr->hldpal)((char far *) X)
  279. #define HSHS(X)         (*afi_ptr->hshs)((char far *) X)
  280. #define HBBW(X)         (*afi_ptr->hbbw)((char far *) X)
  281. #define HCBBW(X)        (*afi_ptr->hcbbw)((char far *) X)
  282. #define HBBR(X)         (*afi_ptr->hbbr)((char far *) X)
  283. #define HBBCHN(X)       (*afi_ptr->hbbchn)((char far *) X)
  284. #define HBBC(X)         (*afi_ptr->hbbc)((char far *) X)
  285. #define HSCOORD(X)      (*afi_ptr->hscoord)((char far *) X)
  286. #define HQCOORD(X)      (*afi_ptr->hqcoord)((char far *) X)
  287. #define HSMODE(X)       (*afi_ptr->hsmode )((char far *) X)
  288. #define HQMODE(X)       (*afi_ptr->hqmode )((char far *) X)
  289. #define HQMODES(X)      (*afi_ptr->hqmodes)((char far *) X)
  290. #define HQDPS(X)        (*afi_ptr->hqdps  )((char far *) X)
  291. #define HRECT(X)        (*afi_ptr->hrect  )((char far *) X)
  292. #define HSBP(X)         (*afi_ptr->hsbp   )((char far *) X)
  293. #define HCLOSE(X)       (*afi_ptr->hclose )((char far *) X)
  294. #define HESC()          (*afi_ptr->hesc   )((char far *) 0L)
  295. #define HXLATE(X)       (*afi_ptr->hxlate )((char far *) X)
  296. #define HSCS(X)         (*afi_ptr->hscs)((char far *) X)
  297. #define HCHST(X)        (*afi_ptr->hchst)((char far *) X)
  298. #define HCCHST(X)       (*afi_ptr->hcchst)((char far *) X)
  299. #define ABLKMFI(X)      (*afi_ptr->ablockmfi)((char far *) X)
  300. #define ABLKCGA(X)      (*afi_ptr->ablockcga)((char far *) X)
  301. #define AERASE(X)       (*afi_ptr->aerase )((char far *) X)
  302. #define ASCROLL(X)      (*afi_ptr->ascroll)((char far *) X)
  303. #define ACURSOR(X)      (*afi_ptr->acursor)((char far *) X)
  304. #define ASCUR(X)        (*afi_ptr->ascur  )((char far *) X)
  305. #define ASFONT(X)       (*afi_ptr->asfont )((char far *) X)
  306. #define AXLATE(X)       (*afi_ptr->axlate )((char far *) X)
  307. #define HINIT(X)        (*afi_ptr->hinit)((char far *) X)
  308. #define HSYNC(X)        (*afi_ptr->hsync)((char far *) X)
  309. #define HMRK(X)         (*afi_ptr->hmrk   )((char far *) X)
  310. #define HCMRK(X)        (*afi_ptr->hcmrk  )((char far *) X)
  311. #define HSMARK(X)       (*afi_ptr->hsmark )((char far *) X)
  312. #define HSLPC(X)        (*afi_ptr->hslpc  )((char far *) X)
  313. #define HRLPC(X)        (*afi_ptr->hrlpc  )((char far *) X)
  314. #define HQCP(X)         (*afi_ptr->hqcp )((char far *) X)
  315. #define HQDFPAL(X)      (*afi_ptr->hqdfpal )((char far *) X)
  316. #define HSPAL(X)        (*afi_ptr->hspal )((char far *) X)
  317. #define HRPAL(X)        (*afi_ptr->hrpal )((char far *) X)
  318. #define HSAFP(X)        (*afi_ptr->hsafp )((char far *) X)
  319. #define ASCELL(X)       (*afi_ptr->ascell )((char far *) X)
  320. #define ASGO(X)         (*afi_ptr->asgo )((char far *) X)
  321. #define HDLINE(X)       (*afi_ptr->hdline )((char far *) X)
  322.         /* blank entry no. 63 */
  323. #define HPEL(X)         (*afi_ptr->hpel )((char far *) X)
  324. #define HRPEL(X)        (*afi_ptr->hrpel )((char far *) X)
  325. #define HPSTEP(X)       (*afi_ptr->hpstep )((char far *) X)
  326. #define HCPSTEP(X)      (*afi_ptr->hcpstep )((char far *) X)
  327. #define HRSTEP(X)       (*afi_ptr->hrstep )((char far *) X)
  328. #define HSBMAP(X)       (*afi_ptr->hsbmap )((char far *) X)
  329. #define HQBMAP(X)       (*afi_ptr->hqbmap )((char far *) X)
  330. #define HBMC(X)         (*afi_ptr->hbmc )((char far *) X)
  331. #define HSDW(X)         (*afi_ptr->hsdw )((char far *) X)
  332. #define HSPRITE(X)      (*afi_ptr->hsprite )((char far *) X)
  333. #define HSSPRITE(X)     (*afi_ptr->hssprite )((char far *) X)
  334. #define HRWVEC(X)       (*afi_ptr->hrwvec )((char far *) X)
  335.         /* blank entry */
  336.         /* blank entry */
  337. #define HSFPAL(X)       (*afi_ptr->hsfpal )((char far *) X)
  338. #define HRFPAL(X)       (*afi_ptr->hrfpal )((char far *) X)
  339. #define HQDEVICE(X)     (*afi_ptr->hqdevice )((char far *) X)
  340.         /* blank entry */
  341.         /* blank entry */
  342.         /* blank entry */
  343.  
  344. #include <afidata.h>
  345.